package org.hughie.springframework.beans;

import java.util.ArrayList;
import java.util.List;

/**
 * 单个bean的属性集合
 */
public class PropertyValues {

    /**
     * 启发：数据结构在底层维护，仅为上层提供封装后的方法。上层应用对底层行为无感。类似ArrayList
     * 上层应用无法直接访问数据结构，更加安全和便捷。
     */
    private final List<PropertyValue> propertyValueList = new ArrayList<>();

    public void addPropertyValue(PropertyValue pv) {
        this.propertyValueList.add(pv);
    }

    public PropertyValue[] getPropertyValues() {
        return this.propertyValueList.toArray(new PropertyValue[0]);
    }

    public PropertyValue getPropertyValue(String propertyName){
        for (PropertyValue pv : this.propertyValueList) {
            if (pv.getName().equals(propertyName)){
                return pv;
            }
        }
        return null;
    }
}
